package com.qy137.utils;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.UUID;

public class OSSUtil {
    public static String getOssUrl(MultipartFile file) {

            //得到图片的名字
            String filename = file.getOriginalFilename();
            //得到图片的后缀名
            String s = filename.substring(filename.lastIndexOf("."));
            //获取一个随机的名字
            UUID uuid = UUID.randomUUID();
            //存到阿里云数据库的图片名字
            filename = uuid + s;

            // Endpoint以杭州为例，其它Region请按实际情况填写。
            String endpoint = "oss-cn-hangzhou.aliyuncs.com";
            // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
            String accessKeyId = "LTAI4GEXcPDSVpTKPNbcW136";
            String accessKeySecret = "nwjfHwDaLxl1rvymANPwwRosqKC8F9";
            String bucketName = "kk-books";
            // <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径，例如abc/efg/123.jpg。
            String objectName = filename;

            // 创建OSSClient实例。
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

            // 上传文件到指定的存储空间（bucketName）并将其保存为指定的文件名称（objectName）。
            try {
                ossClient.putObject(bucketName, objectName, file.getInputStream());
            } catch (IOException e) {
                e.printStackTrace();
            }
            // 关闭OSSClient。
            ossClient.shutdown();

            String url = "https://" + bucketName + "." + endpoint + "/" + filename;

            return url;
    }
}
